package com.soft.base.contract;

import java.util.Map;
/**
 * class
 *
 * @author user
 * @date 2020/06/05
 */
public interface SessionFacade {

    /**
     * key
     * @return
     */
    String key();

    /**
     * key
     *
     * @param token
     * @return
     */
    String key(String token);

    /**
     * set
     *
     * @param name
     * @param value
     * @param <T>
     */
    <T> void set(String name, T value);

    /**
     * all
     *
     * @return
     */
    Map<String, Object> all();

    /**
     * get
     *
     * @param name
     * @param <T>
     * @return
     */
    <T> T get(String name);

    /**
     * get
     *
     * @param name
     * @param token
     * @param <T>
     * @return
     */
    <T> T get(String name, String token);

    /**
     * forget
     * 
     * @param name
     */
    void forget(String name);
}
